package cn.edu.lcu.cs.javaprogramming.db;

import cn.edu.lcu.cs.javaprogramming.entity.User;

import java.sql.*;

/**
 * 数据库工具类
 * <p>
 * 2022/5/22 16:14
 *
 * @Author ling
 */
public class JdbcDemo {
    private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost/goodedu?characterEncoding=utf-8&useSSL=false";
    private static final String USER = "root";
    private static final String PASSWORD = "root";


    /**
     * 仅演示用，
     * @param args
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // jdbc查询的流程
        // 1、加载数据库驱动
        Class.forName(DRIVER_NAME);

        // 2、获取数据库连接
        Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);

        // 3、创建statement语句
        Statement statement = connection.createStatement();

        // 4、执行查询 查询user表中所有行所有列
        ResultSet resultSet = statement.executeQuery("select * from user");

        // 5、处理结果集
        // 移动游标，指向下一行；如果指向的行是有效的，返回真；否则返回假。
        while (resultSet.next()) {
            // 从当前行中获取列的值，并存储到一个对象中。
            User user = new User();
            // 列的索引，从1开始
            user.setId(resultSet.getLong(1));
            // 列的名称，注意大小写
            user.setUsername(resultSet.getString("username"));
            user.setBirthdate(resultSet.getDate("birthdate").toLocalDate());

            System.out.println("user = " + user);
        }

        // 6、关闭各种资源，关闭顺序与打开顺序相反。
        resultSet.close();
        statement.close();
        connection.close();
    }

}
